package cn.iocoder.yudao.module.contract.dal.dataobject.orderContract;

import lombok.*;

import java.math.BigDecimal;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 订单合同 DO
 *
 * @author 管理员
 */
@TableName("ct_order_contract")
@KeySequence("ct_order_contract_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrderContractDO extends BaseDO {

    /**
     * 编号
     */
    @TableId
    private Long id;
    /**
     * 类型编码
     */
    private String contractTypeCode;
    /**
     * 类型名称
     */
    private String contractTypeName;
    /**
     * 模板id
     */
    private Long contractTemplateId;
    /**
     * 模板名称
     */
    private String contractTemplateName;
    /**
     * 订单id
     */
    private Long orderId;
    /**
     * 总金额
     */
    private String totalMoney;
    /**
     * 合同html
     */
    private String contractHtml;
    /**
     * 合同文件url
     */
    private String contractFileUrl;
    /**
     * 下载次数
     */
    private Integer downloadCount;
    /**
     * 打印次数
     */
    private Integer printCount;
    /**
     * 附件id-多个,隔开
     */
    private String fileIds;
    /**
     * 附件id-多个,隔开
     */
    private LocalDateTime fileUploadTime;
    /**
     * 扫描件附件id-多个,隔开
     */
    private String scanFileIds;
    /**
     * 附件id-多个,隔开
     */
    private LocalDateTime scanFileUploadTime;
    /**
     * 异常原因
     */
    private String abnormalCause;
    /**
     * 释放推送状态
     *
     * 枚举 {@link TODO order_contract_push_release 对应的类}
     */
    private String isPushRelease;
    /**
     * 合同状态
     *
     * 枚举 {@link TODO order_contract_status 对应的类}
     */
    private String status;
    /**
     * 订单状态
     *
     * 枚举 {@link TODO order_contract_status 对应的类}
     */
    private String orderStatus;

    /**
     * 框架协议Id
     */
    private Long frameworkAgreementId;

    /**
     * 订单冻结状态 0 释放（未冻结） 1 冻结
     */
    public Integer orderFreezeStatus;

}